home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / pc / files / ant_nec / nec_in_c.tz / nec_in_c / NEC2 / z_div.c < prev   
C/C++ Source or Header  |  1992-02-29  |  547b  |  34 lines

  1. #include "f2c.h"
  2.  
  3. extern VOID sig_die();
  4.  
  5. VOID z_div(c, a, b)
  6. doublecomplex *a, *b, *c;
  7. {
  8. double ratio, den;
  9. double abr, abi;
  10.  
  11. if( (abr = b->r) < 0.)
  12.     abr = - abr;
  13. if( (abi = b->i) < 0.)
  14.     abi = - abi;
  15. if( abr <= abi )
  16.     {
  17.     if(abi == 0)
  18.         sig_die("complex division by zero", 1);
  19.     ratio = b->r / b->i ;
  20.     den = b->i * (1 + ratio*ratio);
  21.     c->r = (a->r*ratio + a->i) / den;
  22.     c->i = (a->i*ratio - a->r) / den;
  23.     }
  24.  
  25. else
  26.     {
  27.     ratio = b->i / b->r ;
  28.     den = b->r * (1 + ratio*ratio);
  29.     c->r = (a->r + a->i*ratio) / den;
  30.     c->i = (a->i - a->r*ratio) / den;
  31.     }
  32.  
  33. }
  34.